package com.zbkj.crmeb.store.request;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder.Default;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author stivepeim
 * @title: StoreOrderRequest
 * @projectName crmeb
 * @description: TODO
 * @date 2020/5/2816:11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="StoreOrderSendRequest对象", description="发货")
public class StoreOrderSendRequest {
    private static final long serialVersionUID=1L;

    @ApiModelProperty(value = "订单ID")
    @TableId(value = "id", type = IdType.AUTO)
    @Min(value = 1, message = "请选择订单")
    private Integer id;

    @ApiModelProperty(value = "发货类型， 1(发货)，2(送货)，3(虚拟)", allowableValues = "range[1,2,3]")
    @NotBlank(message = "请选择发货类型")
    private String type;

    @ApiModelProperty(value = "物流方式 0:自行发货 2：海外直邮，3：跨境转运")
    @NotNull(message = "请选择物流方式")
    private Integer logisticsType;

    @ApiModelProperty(value = "物流阶段， 1头程物流，2中转物流，3终端物流", allowableValues = "range[1,2,3]")
    private Integer logisticsStage;

    @ApiModelProperty(value = "快递公司")
    private String expressId;

    @ApiModelProperty(value = "快递单号")
    private String expressCode;

    @ApiModelProperty(value = "商品订单id")
    private Integer orderInfoId;

    @ApiModelProperty(value = "子订单id集合")
    private List<Integer> orderInfoIdList;

    @ApiModelProperty(value = "分段名称")
    private String name;

    @ApiModelProperty(value = "分段等级")
    private Integer level;

    @ApiModelProperty(value = "手机尾号4位")
    private String phone;

    @ApiModelProperty(value = "操作平台(0平台  1商家  2物流部门 3供应商  4api  5用户)")
    private Integer channel;
    
    @ApiModelProperty(value = "待确认是否强制发货")
    private Boolean isConfirm = false;

}
